import tensorflow as tf

# 加载数据集
mnist = tf.keras.datasets.mnist # 引入keras中的mnist数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# 构建机器学习模型
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),  # 形状转换层
    tf.keras.layers.Dense(128, activation='relu'),  # 全连接层
    tf.keras.layers.Dropout(0.2),  # 随机失活层
    tf.keras.layers.Dense(10)  # 全连接层
])


# 损失函数
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)  # 损失函数

# 配置模型
model.compile(optimizer='adam',  # 优化器
              loss=loss_fn,  # 损失函数
              metrics=['accuracy'])  # 评估指标
# 训练模型
model.fit(x_train, y_train, epochs=5)  # 训练模型

# 评估模型
loss, accuracy = model.evaluate(x_test, y_test, verbose=2)  # 评估模型
print("测试集的损失率：", loss)
print("测试集的准确率：", accuracy)

# model.save('my_model.keras')  # 保存模型